--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 5745d532026f5ce34fba2b707840f4eb8d80f144
Parents : f4d25a3
Author : Ivan <e46112d44649266d71fe2193e00a4710>
Signature : T66BB85Valid, signed by author
Date : 2026-07-26T06:42:52-05:00
refactor: cleanup and format code
Changes
8 files changed, 23 insertions(+), 10 deletions(-)
Diff
diff --git a/meshchatx.rsm b/meshchatx.rsm
index ee82a20e..1197aaa2 100644
Binary files a/meshchatx.rsm and b/meshchatx.rsm differ
diff --git a/meshchatx/src/backend/map_overlay_manager.py b/meshchatx/src/backend/map_overlay_manager.py
index 81439fe1..7080b75f 100644
--- a/meshchatx/src/backend/map_overlay_manager.py
+++ b/meshchatx/src/backend/map_overlay_manager.py
@@ -222,7 +222,9 @@ class MapOverlayManager:
return None
return _row_to_dict(row)
- def get_job(self, job_id: str, identity_hash: str | None = None) -> dict[str, Any] | None:
+ def get_job(
+ self, job_id: str, identity_hash: str | None = None
+ ) -> dict[str, Any] | None:
job = self._jobs.get(job_id)
if job is None:
return None
diff --git a/meshchatx/src/frontend/components/TutorialModal.vue b/meshchatx/src/frontend/components/TutorialModal.vue
index c3f1f74c..43743646 100644
--- a/meshchatx/src/frontend/components/TutorialModal.vue
+++ b/meshchatx/src/frontend/components/TutorialModal.vue
@@ -3481,8 +3481,7 @@ export default {
}
if (response?.data?.hotswapped) {
GlobalEmitter.emit("identity-switched-apply", {
- identity_hash:
- response.data.identity_hash ?? this.identityImportedHash,
+ identity_hash: response.data.identity_hash ?? this.identityImportedHash,
display_name: response.data.display_name ?? "",
requires_reauth: Boolean(response.data.requires_reauth),
});
diff --git a/pyproject.toml b/pyproject.toml
index eab73fd0..4b854bb1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,6 +38,7 @@ dependencies = [
"wasmtime>=28.0.0",
"bleak>=3.0.2,<4.0",
"httpx[http2]>=0.28.1,<1.0",
+ "altcha>=2.0.2",
]
[project.scripts]
diff --git a/tests/backend/test_identity_switch_oracles.py b/tests/backend/test_identity_switch_oracles.py
index 76c8fed4..21212605 100644
--- a/tests/backend/test_identity_switch_oracles.py
+++ b/tests/backend/test_identity_switch_oracles.py
@@ -177,7 +177,9 @@ async def test_oracle_hotswap_broadcast_requires_reauth_when_auth_enabled(
mock_ctx = MagicMock()
mock_ctx.config.display_name.get.return_value = "User"
mock_ctx.config.auth_enabled.get.return_value = True
- app.setup_identity = MagicMock(side_effect=lambda _id: setattr(app, "current_context", mock_ctx))
+ app.setup_identity = MagicMock(
+ side_effect=lambda _id: setattr(app, "current_context", mock_ctx)
+ )
new_hash = "ee" * 16
_write_identity_tree(temp_dir, new_hash, b"key")
@@ -209,7 +211,9 @@ async def test_oracle_hotswap_broadcast_no_reauth_when_auth_disabled(
mock_ctx = MagicMock()
mock_ctx.config.display_name.get.return_value = "User"
mock_ctx.config.auth_enabled.get.return_value = False
- app.setup_identity = MagicMock(side_effect=lambda _id: setattr(app, "current_context", mock_ctx))
+ app.setup_identity = MagicMock(
+ side_effect=lambda _id: setattr(app, "current_context", mock_ctx)
+ )
new_hash = "ff" * 16
_write_identity_tree(temp_dir, new_hash, b"key")
diff --git a/tests/backend/test_lxmf_local_self_oracle.py b/tests/backend/test_lxmf_local_self_oracle.py
index e95a7149..ee0356c0 100644
--- a/tests/backend/test_lxmf_local_self_oracle.py
+++ b/tests/backend/test_lxmf_local_self_oracle.py
@@ -20,7 +20,6 @@ from tests.backend.test_lxmf_local_self_message import (
REMOTE_PEER,
_fake_lxmf_message,
_lxmf_message_factory,
- local_self_app,
)
diff --git a/tests/frontend/AppIdentitySwitch.test.js b/tests/frontend/AppIdentitySwitch.test.js
index da984593..f05109b1 100644
--- a/tests/frontend/AppIdentitySwitch.test.js
+++ b/tests/frontend/AppIdentitySwitch.test.js
@@ -165,10 +165,7 @@ describe("App.vue applyIdentitySwitched", () => {
expect(ToastUtils.success).not.toHaveBeenCalled();
expect(ctx.getConfig).not.toHaveBeenCalled();
expect(GlobalEmitter.emit).toHaveBeenCalledWith("identity-switching-abort");
- expect(GlobalEmitter.emit).not.toHaveBeenCalledWith(
- "identity-switched",
- expect.anything(),
- );
+ expect(GlobalEmitter.emit).not.toHaveBeenCalledWith("identity-switched", expect.anything());
expect(ctx.$router.push).toHaveBeenCalledWith("/auth");
expect(ctx.isSwitchingIdentity).toBe(false);
});
diff --git a/uv.lock b/uv.lock
index 102cffed..bcce5c41 100644
--- a/uv.lock
+++ b/uv.lock
@@ -177,6 +177,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" },
]
+[[package]]
+name = "altcha"
+version = "2.0.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f0/c2/295917abf45cab0a33c2cd167beb645c68044e7b45967880375b4d4339ce/altcha-2.0.2.tar.gz", hash = "sha256:5897bb3812569e9b7b5234d7d93e216d9f158c9ccf0f5b822380bcdba59c1626", size = 23492, upload-time = "2026-06-20T10:16:26.389Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b5/9e/c9a1bcdfb33bc91c0f22f675c69fe7a7743f65b16eed9b80fd070ecc583b/altcha-2.0.2-py3-none-any.whl", hash = "sha256:1631905ac468538fccff04cabf6d2f026c03fe170aa96cab0af799363cb405e8", size = 18744, upload-time = "2026-06-20T10:16:25.228Z" },
+]
+
[[package]]
name = "anyio"
version = "4.14.2"
@@ -2005,6 +2014,7 @@ source = { editable = "." }
dependencies = [
{ name = "aiohttp" },
{ name = "aiohttp-session" },
+ { name = "altcha" },
{ name = "audioop-lts", marker = "python_full_version >= '3.13'" },
{ name = "bcrypt" },
{ name = "bleak" },
@@ -2042,6 +2052,7 @@ dev = [
requires-dist = [
{ name = "aiohttp", specifier = ">=3.14.1" },
{ name = "aiohttp-session", specifier = ">=2.12.1,<3.0.0" },
+ { name = "altcha", specifier = ">=2.0.2" },
{ name = "audioop-lts", marker = "python_full_version >= '3.13'", specifier = ">=0.2.2" },
{ name = "bcrypt", specifier = ">=5.0.0,<6.0.0" },
{ name = "bleak", specifier = ">=3.0.2,<4.0" },
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────